import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
Item{
    anchors.fill: parent
    property bool mouseEntered: false
    implicitWidth:60
    RowLayout {
        id: macSystemBar
        spacing: 0
        anchors {
            fill: parent
            verticalCenter: parent.verticalCenter
        }
        Rectangle {
            width: 12
            height: 12
            radius: 6
            color: window.active||mouseEntered?"#FF5F56":"#747474"
            Canvas{
                id:canvasClose
                visible: mouseEntered
                anchors.fill: parent
                onPaint: {
                    var ctx = getContext("2d");
                    ctx.clearRect(0, 0, width, height);
                    
                    // 计算圆心和半径
                    var cx = width / 2;
                    var cy = height / 2;
                    var radius = Math.min(width, height) / 2;
                    
                    // 绘制红色圆形按钮（Mac 默认关闭按钮颜色常用 #FF5F57）
                    ctx.beginPath();
                
                    
                    // 绘制白色 X 叉号
                    ctx.strokeStyle = "#454545";
                    ctx.lineWidth = 1.2;
                    ctx.beginPath();
                    // 从左上到右下
                    ctx.moveTo(cx - radius / 2, cy - radius / 2);
                    ctx.lineTo(cx + radius / 2, cy + radius / 2);
                    // 从右上到左下
                    ctx.moveTo(cx + radius / 2, cy - radius / 2);
                    ctx.lineTo(cx - radius / 2, cy + radius / 2);
                
                
                    ctx.stroke();
                }
            }

            MouseArea {
                anchors.fill: parent
                hoverEnabled: true
                focus: true
                onPressed: function(mouse){
                    //记下鼠标当前坐标，并标识拖动状态为 true
                    if (mouse.button === Qt.LeftButton) {
                        window.close()
                    }
                }
                onEntered: function(event){
                    mouseEntered = true
                }
                onExited: function(event){
                    mouseEntered = false
                }
            }
        }
        Rectangle {
            width: 12
            height: 12
            radius: 6
            color: window.active||mouseEntered?"#FEBD40":"#747474"  //mac系统上的最小化背景颜色
            Canvas{
                anchors.fill: parent
                visible: mouseEntered
                onPaint: {
                    var ctx = getContext("2d");
                    ctx.clearRect(0, 0, width, height);

                    // 计算圆心和半径
                    var cx = width / 2;
                    var cy = height / 2;
                    var radius = Math.min(width, height) / 2;
                    // 绘制黄色圆形按钮（Mac 最小化按钮）
                    ctx.beginPath();
                    // 绘制白色横线，表示最小化图标
                    ctx.strokeStyle = "gray";
                    ctx.lineWidth = 1.5;
                    ctx.beginPath();
                    // 横线长度占圆的 50%，水平居中
                    var lineLength = radius;
                    ctx.moveTo(cx -  4, cy);
                    ctx.lineTo(cx +  4, cy);
                    ctx.stroke();
                }
            }
            MouseArea {
                anchors.fill: parent
                hoverEnabled: true
                onPressed: function(mouse){
                    // 记下鼠标当前坐标，并标识拖动状态为 true
                    if (mouse.button === Qt.LeftButton) {
                        //mac上window 最小化
                        window.showMinimized()
                    }
                }
                onEntered: function(event){
                    mouseEntered = true
                }
                onExited: function(event){
                    mouseEntered = false
                }
            }
            
        }
        //绘制绿色圆形按钮（Mac 最大化按钮）
        Rectangle {
            width: 12
            height: 12
            radius: 6
            color: window.active||mouseEntered?"#27C846":"#747474"  
            Canvas{
                anchors.fill: parent
                visible: mouseEntered
                onPaint: {
                    var ctx = getContext("2d");
                    ctx.clearRect(0, 0, width, height);
                    // 计算圆心和半径
                    var cx = width / 2;
                    var cy = height / 2;
                    var radius = Math.min(width, height) * 3 / 2;
                    ctx.beginPath();
                    // 定义三角形的腿长（相对于圆半径）和偏移量
                    var t = 4;       // 三角形等腰直角边长
                    // 绘制第一个等腰直角三角形（位于左上角）
                    // 三角形顶点：右角为起点，向左和向上延伸
                    ctx.save();
                    ctx.translate(cx , cy );
                    ctx.beginPath();
                    ctx.moveTo(0, 0);              // 右角（直角所在点）
                    ctx.lineTo(-t, 0);             // 向左
                    ctx.lineTo(0, -t);             // 向上
                    
                    ctx.closePath();
                    ctx.fillStyle = "#454545";
                    ctx.fill();
                    ctx.restore();

                    ctx.save();
                    ctx.translate(cx , cy );
                    ctx.beginPath();
                    ctx.moveTo(0, 0);              // 左角（直角所在点）
                    ctx.lineTo(t, 0);              // 向右
                    ctx.lineTo(0, t); 

                    ctx.closePath();
                    ctx.fillStyle = "#454545";
                    ctx.fill();
                    ctx.restore();
                }
            }
            MouseArea {
                anchors.fill: parent
                hoverEnabled: true
                onPressed: function(mouse){
                    // 记下鼠标当前坐标，并标识拖动状态为 true
                    if (mouse.button === Qt.LeftButton) {
                        console.log("window.windowState=",window.visibility)
                        //如是已经是最大化，则恢复正常大小
                        if(window.visibility == Window.Maximized){
                            window.showNormal()
                        }else{
                            window.showMaximized()
                        }
                    }
                }
                onEntered: function(event){
                    console.log("onEntered333")
                    mouseEntered = true
                }
                onExited: function(event){
                    mouseEntered = false
                }
            }
        }
    }
}

